
                     All About the lex demo's
                     ========================

There are three demo's of lex in this directory one is a section of flex
in the file l.scan the others are a couple of amusing text filters.

The real point of the demos, is to show how to set out the directories to use
lex. In addition to the usual c,o and h directories you also need a 'l'
directory to put your lex source in, a 'tmp' directory for workspace, a lex
directory for the output file from flex 'lex.yy_c' and finally a directory
flex_code.

Important
=========
There are three files in 'h' called 'fskeldef', 'faskeldef' and 'fskelcom'
lex needs at least 'fskelcom' and one of the others to work, so you must always
have them in your h directory. Similarly, the directory flex_code must have
'skel' and 'fastskel' in it.

Making 'valspeak'
================
To make valspeak, you beigin by typing;

     flex l.valspeak

Notice that unlike for cc it is necessary to give the 'l' prefix.
Flex now produces a file 'lex.yy_c' which is the program you actually
compile. First rename this to c.valspeak and then compile it;

    cc valspeak

this produces the file o.valspeak which can be linked in the traditional way
but here by the exec link_val which gives the executable $.Library.valspeak
Finally, try out valspeak by typing;

    valspeak !readme

All this asumes, that $.Library on this disc, is in the current Run$Path of
course.

Making 'jive'
=============
Identical to making 'valspeak' except for the change of name.

Making 'scan'
==============
The file l.scan, is part of flex. So to make flex, you need a copy of flex.
The usual process except flex is called with the -ist switches. Notice that
the file lex_src.c.scan(_z) is the original form of scan distributed with flex.
The test of whether you have got flex working, is does it make the same
c.scan file from l.scan as the original. A good use for diff. But note that
I have edited c.scan to make it work with ANSI C so there are some changes.
